<?php

declare(strict_types=1);

namespace app\common\AliYunOss;

//阿里云OSS文件上传类
use OSS\OssClient;
use OSS\Core\OssException;
use app\common\AliYunOss\Common;

class Bucket
{
    private $ossClient;
    private $bucketName;

    public function __construct()
    {
        $this->ossClient = Common::getOssClientInstance();
        $this->bucketName = Common::getBucketName();
    }


    /**
     * @describe  创建OSS BucketName。
     * @author: Bobo
     * @date: 2024-06-07 15:10:34 
     * @param $ossPath [str] @required 文件在OSS中的目标路径
     * @param $filePath [str] @required 本地文件的路径
     * @return arr 包含上传结果和消息的数组。
     *               - 'host': OSS域名。
     *               - 'url': 文件在OSS上的URL。
     *               - 'result': 上传结果，true为成功，false为失败。
     *               - 'message': 上传消息，成功时为"上传成功"，失败时为错误信息。
     * @throws OssException 如果上传过程中出现OSS相关的异常。
     */
    public function createBucket($bucketName, $filePath)
    {
        try {
            $res = $this->ossClient->createBucket($bucketName);
        } catch (OssException $e) {
            return [
                'result' => false,
                'message' => $e->getMessage()
            ];
        }
    }

    public function bucketsIndex()
    {
        try {

            $bucketListInfo = $this->ossClient->listBuckets();
            return $bucketListInfo;
        } catch (OssException $e) {
            return false;
        }
    }
}
